In communication networks, such as peer-to-peer networks or client-server networks, content that is being distributed to client devices is partitioned (e.g., broken or chunked) into discrete pieces, which may usually be the same size. Each of these pieces (e.g., 1-megabyte pieces) are hashed to create a verification value (e.g., a secure hash algorithm 1 (SHA-1) value). The verification values may be stored in an authorization digest that includes all the verification values for the pieces of content.
Client devices download the pieces of the content, such as from other clients or from a source such as a content delivery network. The client device may download an entire file, such as a 500-megabyte file that includes 500 individual 1-megabyte pieces. The client device can generate a verification value for each piece and check the generated verification value against the digest to validate the integrity of the bytes downloaded for each piece. Downloading the whole file and checking the verification values for each individual piece requires a large amount of data to be downloaded and also hashed. When a communication network is congested, the extra bandwidth used to download the entire file may cause performance degradation in the communication network.